﻿<UserControl x:Class="Framework.UI.TestHarness.Views.InputView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:metro="http://schemas.codeplex.com/elysium"
             xmlns:params="http://schemas.codeplex.com/elysium/params"
             xmlns:extra="http://schemas.extra.com/ui"
             mc:Ignorable="d" 
             d:DesignHeight="768" d:DesignWidth="1024">
    <TabControl TabStripPlacement="Bottom">
        <TabItem Header="TextBox">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="TextBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TextBox}"/>
                <TextBox x:Name="TextBox" 
                         Grid.Column="1"
                         Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"/>

                <Label Grid.Row="1" 
                       Content="TransparentTextBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TransparentTextBox}"/>
                <TextBox x:Name="TransparentTextBox" 
                         Grid.Column="1"
                         Grid.Row="1" 
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Style="{StaticResource TransparentTextBoxStyle}"
                         Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"/>

                <Label Grid.Row="2"
                       Content="Multi-Line TextBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=MultiLineTextBoxStyle}"/>
                <TextBox x:Name="MultiLineTextBoxStyle" 
                         Grid.Column="1"
                         Grid.Row="2"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Style="{StaticResource MultiLineTextBoxStyle}"
                         Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"/>

                <TextBlock Grid.ColumnSpan="2" 
                           Grid.Row="3"
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource HeaderTextStyle}" 
                           Text="TextBoxExtended"/>
                <TextBlock Grid.ColumnSpan="2" 
                           Grid.Row="4"
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource AccentTextStyle}"
                           Text="AutoMoveFocus='True' (Use Arrow Keys To Move Focus) SelectAllOnGotFocus='True' Watermark='Text'"/>
                
                <Label Grid.Row="5"
                       Content="TextBoxExtended"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TextBoxExtended}"/>
                <extra:TextBoxExtended x:Name="TextBoxExtended" 
                                     Grid.Column="1"
                                     Grid.Row="5"
                                     AutoMoveFocus="True"
                                     Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                     Watermark="Text"/>

                <Label Grid.Row="6"
                       Content="TransparentTextBoxExtended"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TransparentTextBoxExtended}"/>
                <extra:TextBoxExtended x:Name="TransparentTextBoxExtended" 
                                     Grid.Column="1"
                                     Grid.Row="6"
                                     AutoMoveFocus="True"
                                     Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                     Style="{StaticResource TransparentTextBoxExtendedStyle}"
                                     Watermark="Text"/>

                <Label Grid.Row="7"
                       Content="MultiLineTextBoxExtendedStyle"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=MultiLineTextBoxExtendedStyle}"/>
                <extra:TextBoxExtended x:Name="MultiLineTextBoxExtendedStyle" 
                                     Grid.Column="1"
                                     Grid.Row="7"
                                     AutoMoveFocus="True"
                                     Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                     Style="{StaticResource MultiLineTextBoxExtendedStyle}"
                                     Text="Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum"
                                     Watermark="Text"/>

                <Label Grid.Row="8"
                       Content="FilterTextBoxExtendedStyle"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=FilterTextBoxExtended}"/>
                <extra:TextBoxExtended x:Name="FilterTextBoxExtended" 
                                     Grid.Column="1"
                                     Grid.Row="8"
                                     AutoMoveFocus="True"
                                     Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                     Style="{StaticResource FilterTextBoxExtendedStyle}"/>

            </Grid>
        </TabItem>
        <TabItem Header="RichTextBox">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>

                <Label Content="RichTextBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=RichTextBox}"/>
                <Control Grid.Column="1"
                         DataContext="{Binding ElementName=RichTextBox}"
                         Style="{StaticResource RichTextBoxToolbar}"/>
                <Control Grid.Column="1"
                         Grid.Row="1"
                         DataContext="{Binding ElementName=RichTextBox}"
                         Style="{StaticResource RichTextBoxToolbarSmallIcons}"/>
                <extra:RichTextBoxExtended x:Name="RichTextBox" 
                                         Grid.Column="1"
                                         Grid.Row="2"
                                         IsPlainTextCopyEnabled="{Binding ElementName=PlainTextCopyCheckBox, Path=IsChecked}"
                                         IsPlainTextCutEnabled="{Binding ElementName=PlainTextCutCheckBox, Path=IsChecked}"
                                         IsPlainTextPasteEnabled="{Binding ElementName=PlainTextPasteCheckBox, Path=IsChecked}"
                                         Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                         Text="TODO REMAINING WORK: Font Selector, Font Colour Selector, Format Bar (http://wpftoolkit.codeplex.com/wikipage?title=RichTextBoxFormatBar)"/>

                <Label Grid.Row="3"
                       Content="Plain Text Cut"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=PlainTextCutCheckBox}"/>
                <CheckBox x:Name="PlainTextCutCheckBox"
                          Grid.Column="1"
                          Grid.Row="3"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="4"
                       Content="Plain Text Copy"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=PlainTextCopyCheckBox}"/>
                <CheckBox x:Name="PlainTextCopyCheckBox"
                          Grid.Column="1"
                          Grid.Row="4"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="5"
                       Content="Plain Text Paste"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=PlainTextPasteCheckBox}"/>
                <CheckBox x:Name="PlainTextPasteCheckBox"
                          Grid.Column="1"
                          Grid.Row="5"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="6"
                       Content="Plain Text"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=PlainTextTextBox}"/>
                <TextBox x:Name="PlainTextTextBox" 
                         Grid.Column="1"
                         Grid.Row="6"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Style="{StaticResource MultiLineTextBoxStyle}"
                         Text="{Binding ElementName=RichTextBox, Path=Text, UpdateSourceTrigger=PropertyChanged}"/>

                <Label Grid.Row="7"
                       Content="RTF Text"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=RtfTextTextBox}"/>
                <TextBox x:Name="RtfTextTextBox" 
                         Grid.Column="1"
                         Grid.Row="7"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Style="{StaticResource MultiLineTextBoxStyle}"
                         Text="{Binding ElementName=RichTextBox, Path=RtfText, UpdateSourceTrigger=PropertyChanged}"/>

                <Label Grid.Row="8"
                       Content="XAML Text"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=XamlTextTextBox}"/>
                <TextBox x:Name="XamlTextTextBox" 
                         Grid.Column="1"
                         Grid.Row="8"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Style="{StaticResource MultiLineTextBoxStyle}"
                         Text="{Binding ElementName=RichTextBox, Path=XamlText, UpdateSourceTrigger=PropertyChanged}"/>

            </Grid>
        </TabItem>
        <TabItem Header="ButtonTextBox">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="ButtonTextBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=ButtonTextBox}"/>
                <extra:ButtonTextBox x:Name="ButtonTextBox"
                                   Grid.Column="1"
                                   Command="{Binding ShowMessageBoxCommand}"
                                   CommandParameter="Has The Command Property"
                                   Content="Content"
                                   Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"/>

                <Label Grid.Row="1"
                       Content="SearchButtonTextBoxStyle"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=SearchButtonTextBoxStyle}"/>
                <extra:ButtonTextBox x:Name="SearchButtonTextBoxStyle" 
                                   Grid.Column="1"
                                   Grid.Row="1"
                                   Command="{Binding ShowMessageBoxCommand}"
                                   CommandParameter="Has The Command Property"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource SearchButtonTextBoxStyle}"/>

                <Label Grid.Row="2"
                       Content="FolderButtonTextBoxStyle"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=FolderButtonTextBoxStyle}"/>
                <extra:ButtonTextBox x:Name="FolderButtonTextBoxStyle" 
                                   Grid.Column="1"
                                   Grid.Row="2"
                                   Command="{Binding ShowMessageBoxCommand}"
                                   CommandParameter="Has The Command Property"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource FolderButtonTextBoxStyle}"/>

                <Label Grid.Row="3"
                       Content="RefreshButtonTextBoxStyle"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=RefreshButtonTextBoxStyle}"/>
                <extra:ButtonTextBox x:Name="RefreshButtonTextBoxStyle" 
                                   Grid.Column="1"
                                   Grid.Row="3"
                                   Command="{Binding ShowMessageBoxCommand}"
                                   CommandParameter="Has The Command Property"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource RefreshButtonTextBoxStyle}"/>

                <Label Grid.Row="4"
                       Content="LargeSearchButtonTextBoxStyle"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=LargeSearchButtonTextBoxStyle}"/>
                <extra:ButtonTextBox x:Name="LargeSearchButtonTextBoxStyle" 
                                   Grid.Column="1"
                                   Grid.Row="4"
                                   Command="{Binding ShowMessageBoxCommand}"
                                   CommandParameter="Has The Command Property"
                                   Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                   Style="{StaticResource LargeSearchButtonTextBoxStyle}"/>

            </Grid>
        </TabItem>
        <TabItem Header="DatePicker">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="Auto"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Grid.Column="1" 
                       Content="DatePicker"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=DatePicker}"/>
                <DatePicker x:Name="DatePicker" 
                            Grid.Column="2" 
                            Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"/>

                <Label Grid.Column="1" 
                       Grid.Row="1" 
                       Content="TransparentDatePicker"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TransparentDatePicker}"/>
                <DatePicker x:Name="TransparentDatePicker" 
                            Grid.Column="2" 
                            Grid.Row="1" 
                            Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                            Style="{StaticResource TransparentDatePickerStyle}"/>

                <Label Grid.Column="1" 
                       Grid.Row="2" 
                       Content="Calendar"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=Calendar}"/>
                <Calendar x:Name="Calendar" 
                          Grid.Column="2" 
                          Grid.ColumnSpan="2"
                          Grid.Row="2" 
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"/>

                <TextBlock Grid.ColumnSpan="4" 
                           Grid.Row="3" 
                           Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                           Style="{StaticResource HeaderTextStyle}" 
                           Text="Available Dates"/>
                <TextBlock Grid.ColumnSpan="4" 
                           Grid.Row="4" 
                           Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                           Style="{StaticResource NormalTextStyle}" 
                           Text="Use the extra:DatePickerAttached.AvailableDates attached property to limit the selection of a DatePicker to a collection of Dates. Blackout dates are created for you and applied to the DatePicker."/>
                
            </Grid>
        </TabItem>
        <TabItem Header="TimePicker">
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource NormalTextStyle}" 
                       Text="TODO: A control to pick hours, minutes and seconds. Copy From WPF ToolKit Extended and restyle."/>
        </TabItem>
        <TabItem Header="DateTimePicker">
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource NormalTextStyle}" 
                       Text="TODO: A control to pick date and time together. Copy From WPF ToolKit Extended and restyle. Also update the DataGridDateTimeColumn with this control."/>
        </TabItem>
        <TabItem Header="ColourPicker">
            <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource NormalTextStyle}" 
                       Text="TODO: Similar to the Calendar and DatePicker controls, we need a ColourSwatch and ColourPicker control."/>
        </TabItem>
        <TabItem Header="CheckBox">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="CheckBox (Don't forget VerticalAlignment=Center TODO: Make the same size as TextBox)"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=CheckBox}"/>
                <CheckBox x:Name="CheckBox" 
                          Grid.Column="1"
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          VerticalAlignment="Center"/>

            </Grid>
        </TabItem>
        <TabItem Header="ToggleSwitch">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="ToggleSwitch"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=ToggleSwitch}"/>
                <metro:ToggleSwitch x:Name="ToggleSwitch" 
                                    Grid.Column="1"
                                    HorizontalAlignment="Left"
                                    Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                    VerticalAlignment="Center"/>

                <TextBlock Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                       Style="{StaticResource NormalTextStyle}" 
                       Text="TODO: Space bar does not toggle the ToggleSwitch control."/>

            </Grid>
        </TabItem>
        <TabItem Header="RadioButton">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="RadioButton (Don't forget VerticalAlignment=Center TODO: Make the same size as TextBox)"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=RadioButton}"/>
                <RadioButton x:Name="RadioButton" 
                             Grid.Column="1"
                             GroupName="RadioButtonGroup"
                             Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                             VerticalAlignment="Center"/>
                <RadioButton Grid.Column="1"
                             Grid.Row="1"
                             GroupName="RadioButtonGroup"
                             Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                             VerticalAlignment="Center"/>

            </Grid>
        </TabItem>
        <TabItem Header="ComboBox">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <Label Content="ComboBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=ComboBox}"/>
                <ComboBox x:Name="ComboBox" 
                          extra:ComboBoxAttached.MaxLength="{Binding ElementName=MaxLengthDecimalUpDown, Path=Value}"
                          Grid.Column="1" 
                          DisplayMemberPath="Name"
                          IsEditable="{Binding ElementName=IsEditableToggleSwitch, Path=IsChecked}"
                          ItemsSource="{Binding Funds}"
                          Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="1" 
                       Content="IsEditable"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=IsEditableToggleSwitch}"/>
                <metro:ToggleSwitch x:Name="IsEditableToggleSwitch" 
                                    Grid.Column="1" 
                                    Grid.Row="1" 
                                    HorizontalAlignment="Left"
                                    IsChecked="True"
                                    Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                    VerticalAlignment="Center"/>

                <Label Grid.Row="2" 
                       Content="MaxLength"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=MaxLengthDecimalUpDown}"/>
                <extra:DecimalUpDown x:Name="MaxLengthDecimalUpDown" 
                                     Grid.Column="1" 
                                     Grid.Row="2"
                                     Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                     Minimum="0"
                                     Value="-1"/>

                <Label Grid.Row="3"
                       Content="TransparentComboBox"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TransparentComboBox}"/>
                <ComboBox x:Name="TransparentComboBox" 
                          Grid.Column="1" 
                          Grid.Row="3"
                          DisplayMemberPath="Name"
                          ItemsSource="{Binding Funds}"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                          Style="{StaticResource TransparentComboBoxStyle}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="4"
                       Content="ComboDataGrid"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=ComboDataGrid}"/>
                <extra:ComboDataGrid x:Name="ComboDataGrid" 
                                     Grid.Column="1" 
                                     Grid.Row="4"
                                     DisplayMemberPath="Name"
                                     ItemsSource="{Binding Funds}"
                                     Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                                     VerticalAlignment="Center">
                    <extra:ComboDataGrid.Columns>
                        <extra:DataGridTextColumn Binding="{Binding Name}" 
                                                Header="Name"
                                                Width="200"/>
                        <extra:DataGridDateColumn Binding="{Binding Date}" 
                                                Header="Date"
                                                Width="120"/>
                    </extra:ComboDataGrid.Columns>
                </extra:ComboDataGrid>

            </Grid>
        </TabItem>
        <TabItem Header="Numeric">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"/>
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>

                <TextBlock Grid.ColumnSpan="2" 
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource HeaderTextStyle}" 
                           Text="NumericUpDown"/>
                <TextBlock Grid.ColumnSpan="2" 
                           Grid.Row="1"
                           Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                           Style="{StaticResource AccentTextStyle}"
                           Text="A control exists for each numeric type. DecimalUpDown/DoubleUpDown/IntegerUpDown/ShortUpDown/LongUpDown/ByteUpDown/SingleUpDown/SByteUpDown/UIntegerUpDown/ULongUpDown/UShortUpDown"/>

                <Label Grid.Row="2" 
                       Content="DecimalUpDown"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=DecimalUpDown}"/>
                <extra:DecimalUpDown x:Name="DecimalUpDown" 
                                     Grid.Column="1"
                                     Grid.Row="2"
                                     AllowSpin="{Binding ElementName=AllowSpinCheckBox, Path=IsChecked}"
                                     FormatString="{Binding ElementName=FormatStringTextBox, Path=Text}"
                                     Increment="{Binding ElementName=IncrementTextBox, Path=Text}"
                                     IsRedOnNegative="{Binding ElementName=IsRedOnNegativeCheckBox, Path=IsChecked}"
                                     Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                     Maximum="{Binding ElementName=MaximumTextBox, Path=Text}"
                                     Minimum="{Binding ElementName=MinimumTextBox, Path=Text}"
                                     ShowButtonSpinner="{Binding ElementName=ShowButtonSpinnerCheckBox, Path=IsChecked}"
                                     Value="-1"
                                     Watermark="Watermark Text"/>

                <Label Grid.Row="3" 
                       Content="TransparentDecimalUpDown"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=TransparentDecimalUpDown}"/>
                <extra:DecimalUpDown x:Name="TransparentDecimalUpDown" 
                                     Grid.Column="1" 
                                     Grid.Row="3"
                                     AllowSpin="{Binding ElementName=AllowSpinCheckBox, Path=IsChecked}"
                                     FormatString="{Binding ElementName=FormatStringTextBox, Path=Text}"
                                     Increment="{Binding ElementName=IncrementTextBox, Path=Text}"
                                     IsRedOnNegative="{Binding ElementName=IsRedOnNegativeCheckBox, Path=IsChecked}"
                                     Margin="{Binding RelativeSource={RelativeSource Self}, Path=(params:General.BoldPadding), Mode=OneWay}"
                                     Maximum="{Binding ElementName=MaximumTextBox, Path=Text}"
                                     Minimum="{Binding ElementName=MinimumTextBox, Path=Text}"
                                     ShowButtonSpinner="{Binding ElementName=ShowButtonSpinnerCheckBox, Path=IsChecked}"
                                     Value="-1"
                                     Watermark="Watermark Text"/>

                <TextBlock Grid.ColumnSpan="2" 
                           Grid.Row="4"
                           Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Top, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                           Style="{StaticResource HeaderTextStyle}" 
                           Text="Options"/>

                <Label Grid.Row="5" 
                       Content="Show Button Spinner"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=ShowButtonSpinnerCheckBox}"/>
                <CheckBox x:Name="ShowButtonSpinnerCheckBox" 
                          Grid.Column="1"
                          Grid.Row="5"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="6" 
                       Content="Allow Spin"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=AllowSpinCheckBox}"/>
                <CheckBox x:Name="AllowSpinCheckBox" 
                          Grid.Column="1"
                          Grid.Row="6"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                          VerticalAlignment="Center"/>

                <Label Grid.Row="7" 
                       Content="Format String"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=FormatStringTextBox}"/>
                <TextBox x:Name="FormatStringTextBox" 
                         Grid.Column="1"
                         Grid.Row="7"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Text="#,##0.00;(#,##0.00)"/>

                <Label Grid.Row="8" 
                       Content="Increment"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=IncrementTextBox}"/>
                <TextBox x:Name="IncrementTextBox" 
                         Grid.Column="1"
                         Grid.Row="8"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Text="1"/>

                <Label Grid.Row="9" 
                       Content="Minimum"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=MinimumTextBox}"/>
                <TextBox x:Name="MinimumTextBox" 
                         Grid.Column="1"
                         Grid.Row="9"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Text="-5.5"/>

                <Label Grid.Row="10" 
                       Content="Maximum"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=MaximumTextBox}"/>
                <TextBox x:Name="MaximumTextBox" 
                         Grid.Column="1"
                         Grid.Row="10"
                         Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                         Text="10"/>

                <Label Grid.Row="11" 
                       Content="Is Red On Negative"
                       Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"
                       Target="{Binding ElementName=IsRedOnNegativeCheckBox}"/>
                <CheckBox x:Name="IsRedOnNegativeCheckBox" 
                          Grid.Column="1"
                          Grid.Row="11"
                          IsChecked="True"
                          Margin="{Binding Converter={StaticResource DoubleToThicknessConverter}, ConverterParameter='Left, Right, Bottom', RelativeSource={RelativeSource Self}, Path=(params:General.BoldPaddingValue), Mode=OneWay}"/>

            </Grid>
        </TabItem>
    </TabControl>
</UserControl>
